iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 30
2
Mobile Development

Android TDD 測試驅動開發系列 第 30

Day30 - 最後,持續學習

  • 分享至 

  • xImage
  •  

30天的發文到了最後一天了,這是第二次參加鐵人賽,每次參賽都抱持著要利用這個機會把一直想學會的學起來。去年寫了Android animation 30天上手,從開賽的一個月前準備。這次TDD則花了更長的時間提早準備。用了4個主題來介紹:「單元測試基本概念」、「在Android 上進行單元測試」、「使用MVP、MVVM 架構提高可測試性」、「TDD 測試驅動開發」,其中花了最多的時間在想要用怎樣的範例才能讓大家容易理解。在開賽後就更累了,下班回家就是準備鐵人賽文章,晚睡早起,也幸好有太太的包容,完賽了很累但也很值得。

自已在學習單元測試的過程中發現要寫好測試,其實是很多技能與基本功的綜合實現。例如物件導向、SOLID、設計模式,怎麼讓物件做到單一職責。剛開始用TDD一定很不順,尤其在MVVM的架構,你可能會覺得寫程式的順序變得跳來跳去,一下在測試,一下在Production code。需要不斷的練習才能越來越順。而工作上,你可能會接手別人的專案,不見得可以從頭由TDD來開發,也可能這個專案沒有測試程式保護,甚至不是用MVP或MVVM的架構。這樣的專案光是要加上測試可能就有困難,更別說用TDD來開發。如果一步步的透過加上UI測試、重構、加上單元測試,就是更有挑戰的地方了。這個Android TDD系列只是帶大家進入TDD及單元測試。我自己也還在學習,還是很多時候無法加入測試,還是很多時候沒有用TDD來開發。但只要你嘗試開始,如果能持續的使用TDD開發,寫出來的程式碼品質就會大幅提升。

以下是一些曾上過的實體課程或看過的書跟網站,對我學習TDD的過很蠻有幫助,也推薦給大家。

實體課程
Bill叔 輕鬆學會物件導向
Bill叔 決戰設計模式
91 測試驅動開發與持續重構
91 極速開發

網路資源
Google codelabs
Android Testing Codelab
Android Data Binding Codelab
Android lifecycle-aware components codelab
91 30天快速上手TDD

LeetCode 是一個供使用者線上解程式題的服務,可以讓你在線上寫程式練習TDD。
https://leetcode.com/

Coding Dojo
Android Developer 開發者讀書會也會定期辦Coding Dojo,藉由輪流上台寫程式互相學習。

書(我也沒有都看完,但是對寫單元測試蠻有幫助的)
單元測試的藝術
Working Effectively With Legacy Code
Clean Code 無瑕的程式碼
重構 改善既有程式的設計

最後,感謝有看到最後一篇的讀者,希望這次的主題對大家有幫助,有任何的問題也歡迎大家留言。

關於我
Evan Chen
Linkedin:https://www.linkedin.com/in/evan-chen-939b31115/
Medium:https://medium.com/@evanchen76


上一篇
Day29 - Android TDD 小結
系列文
Android TDD 測試驅動開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
iopkl27
iT邦新手 5 級 ‧ 2019-10-14 15:37:31

恭喜完賽/images/emoticon/emoticon42.gif

0
阿展展展
iT邦好手 1 級 ‧ 2020-02-28 09:34:28

恭喜完賽!! 恭喜獲得佳作

我要留言

立即登入留言